home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1993…ch: Other People's Memory / ADC Developer CD (1993-03) (''Other People's Memory'')_iso / Dev.CD Mar 93.iso / Development Platforms / Apple II / Essentials / MPW IIGS Interfaces / PIIGSIncludes / Finder.p < prev    next >
Encoding:
Text File  |  1992-02-26  |  12.0 KB  |  467 lines  |  [TEXT/MPS ]

  1. {********************************************
  2. ; File: Finder.p
  3. ;
  4. ;
  5. ; Copyright Apple Computer, Inc. 1991-92
  6. ; All Rights Reserved
  7. ;
  8. ********************************************}
  9.  
  10. UNIT Finder;
  11.  
  12. INTERFACE
  13.  
  14. USES TYPES, GSOS, QUICKDRAW, EVENTS, CONTROLS, WINDOWS;
  15.  
  16. CONST
  17. { target string for SendRequest to Finder }
  18. nameOfFinder = 'Apple~Finder~';
  19.  
  20. { SendRequest codes sent by the Finder }
  21. finderSaysHello = $0100;
  22. finderSaysGoodbye = $0101;
  23. finderSaysSelectionChanged = $0102;
  24. finderSaysMItemSelected = $0103;
  25. finderSaysBeforeOpen = $0104;
  26. finderSaysOpenFailed = $0105;
  27. finderSaysBeforeCopy = $0106;
  28. finderSaysIdle = $0107;
  29. finderSaysExtrasChosen = $0108;
  30. finderSaysBeforeRename = $0109;
  31. finderSaysKeyHit = $010A;
  32.  
  33. { SendRequest codes sent to the Finder (target = "Apple~Finder~") }
  34. tellFinderGetDebugInfo = $8000;
  35. tellFinderAreYouThere = $8001;
  36. askFinderAreYouThere = $8001;
  37. tellFinderOpenWindow = $8002;
  38. tellFinderCloseWindow = $8003;
  39. tellFinderGetSelectedIcons = $8004;
  40. tellFinderSetSelectedIcons = $8005;
  41. tellFinderLaunchThis = $8006;
  42. tellFinderShutDown = $8007;
  43. tellFinderMItemSelected = $8008;
  44. tellFinderMatchFileToIcon = $800A;
  45. tellFinderAddBundle = $800B;
  46. tellFinderAboutChange = $800C;
  47. tellFinderCheckDatabase = $800D;
  48. tellFinderColorSelection = $800E;
  49. tellFinderAddToExtras = $800F;
  50. tellFinderIdleHowLong = $8011;
  51. askFinderIdleHowLong = $8011;
  52. tellFinderGetWindowIcons = $8012;
  53. tellFinderGetWindowInfo = $8013;
  54. tellFinderRemoveFromExtras = $8014;
  55. tellFinderSpecialPreferences = $8015;
  56.  
  57. { Finder menu item IDs }
  58. finderItemAbout = $012D;
  59. finderItemHelp = $012E;
  60. finderItemNewFolder = $015F;
  61. finderItemOpen = $0160;
  62. finderItemPrint = $0161;
  63. finderItemClose = $0162;
  64. finderItemCloseAll = $0163;
  65. finderItemDuplicate = $0164;
  66. finderItemPutAway = $0165;
  67. finderItemValidate = $0166;
  68. finderItemUndo = $00FA;
  69. finderItemCut = $00FB;
  70. finderItemCopy = $00FC;
  71. finderItemPaste = $00FD;
  72. finderItemClear = $00FE;
  73. finderItemSelectAll = $0191;
  74. finderItemShowClipboard = $0192;
  75. finderItemStackWindows = $01C3;
  76. finderItemByIcon = $01F5;
  77. finderItemBySmallIcon = $01F6;
  78. finderItemByName = $01F7;
  79. finderItemByDate = $01F8;
  80. finderItemBySize = $01F9;
  81. finderItemByKind = $01FA;
  82. finderItemFormat = $0227;
  83. finderItemErase = $0228;
  84. finderItemVerify = $0229;
  85. finderItemEject = $022A;
  86. finderItemCleanUp = $0259;
  87. finderItemEmptyTrash = $025A;
  88. finderItemPreferences = $025B;
  89. finderItemIconInfo = $025C;
  90. finderItemShutDown = $025D;
  91. finderItemCleanUpByName = $025E;
  92. finderItemColorBlack = $028B;
  93. finderItemColorBlue = $028C;
  94. finderItemColorYellowBrown = $028D;
  95. finderItemColorGray1 = $028E;
  96. finderItemColorRed = $028F;
  97. finderItemColorPurple = $0290;
  98. finderItemColorOrange = $0291;
  99. finderItemColorPink = $0292;
  100. finderItemColorDarkGreen = $0293;
  101. finderItemColorAqua = $0294;
  102. finderItemColorBrightGreen = $0295;
  103. finderItemColorPaleGreen = $0296;
  104. finderItemColorPeriwinkleBlue = $0298;
  105. finderItemColorYellow = $0299;
  106. finderItemColorWhite = $029A;
  107.  
  108. { Finder SendRequest Result Error Codes }
  109. fErrNoError = $0000; { no error }
  110. fErrBadInput = $4201; { bad input value }
  111. fErrFailed = $4202; { could not complete request }
  112. fErrCancel = $4203; { user cancelled operation }
  113. fErrDimmed = $4204; { menu item was dimmed }
  114. fErrBusy = $4205;   { not now, Finder has a headache }
  115. fErrNotPrudent = $4206; { can't add Finder's resources to desktop file }
  116. fErrBadBundle = $4207; { unknown rBundle version, or rBundle damaged }
  117. fErrNotImp = $42FF; { request not implemented }
  118.  
  119. { icFlag values within an iconObj }
  120. ICSELECTED  = $00000001;
  121. ICOPENED    = $00000002;
  122. ICOFFLINE   = $00000004;
  123. ICEXTENDED  = $00000008;
  124. ICLOCKED    = $00000080;
  125. ICFORECLR   = $00000f00;
  126. ICBACKCLR   = $0000F000;
  127. ICNETACCESS = $000F0000;
  128. ICNETWORK   = $01000000;
  129. ICREADABLE  = $02000000;
  130.  
  131. TYPE
  132.  
  133. { general Finder data structures }
  134.  
  135. iconObjHandle = ^iconObjPtr;
  136. iconObjPtr = ^iconObj;
  137. iconObj = RECORD
  138.     icNext: iconObjHandle;
  139.     icLast: iconObjHandle;
  140.     icMom: WindowPtr;
  141.     icWind: WindowPtr;
  142.     icDisk: iconObjHandle;
  143.     icFlag: longint;
  144.     icFType: integer;
  145.     icFileInfo: longint;
  146.     icKind: String255Ptr;
  147.     icy: integer;
  148.     icx: integer;
  149.     icTextY: integer;
  150.     icTitleLen: integer;
  151.     icName: String[33];
  152.     icLocalAccess: integer;
  153.     icForked: integer;
  154.     icFBlocks: longint;
  155.     icFBytes: longint;
  156.     icCDate: TimeRec;
  157.     icMDate: TimeRec;
  158.     icIcon: longint;
  159.     icSmallIcon: longint;
  160.     icRBundle: Handle;
  161.     icOneDocOffset: longint;
  162.     icInfo: WindowPtr;
  163.     icDevNum: integer;
  164.     icDevInfo: integer;
  165.     icOptionList: integer;
  166.     icFST: integer;
  167.     bodyOfOptionList: packed array[1..36] of byte;
  168.     icNetworkAccess: longint;
  169. END;
  170.  
  171. finderWindBlkPtr = ^finderWindBlk;
  172. finderWindBlk = RECORD
  173.     windIcons: iconObjHandle;
  174.     windID: integer;
  175.     windView: integer;
  176.     windIc: iconObjHandle;
  177.     windDiskIc: iconObjHandle;
  178.     windItems: integer;
  179.     windUsed: longint;
  180.     windFree: longint;
  181.     windFST: integer;
  182.     windAccess: integer;
  183.     windDirty: integer;
  184.     windTitle: String[53];
  185.     windMenuItem: integer;
  186.     windMenuText: String[51];
  187.     windDate: TimeRec;
  188.     windPathLength: integer;  { length of GS/OS string path }
  189.     windPathChars: packed array[1..989] of char;
  190. END;
  191.  
  192. { finderSays DataIn Structures }
  193.  
  194. finderSaysHelloInPtr = ^finderSaysHelloIn;
  195. finderSaysHelloIn = RECORD
  196.     pCount: integer;
  197.     versNum: longint;
  198.     finderUserID: integer;
  199.     iconObjectSize: integer;
  200. END;
  201.  
  202. finderSaysMItemSelectedInPtr = ^finderSaysMItemSelectedIn;
  203. finderSaysMItemSelectedIn = RECORD
  204.     pCount: integer;
  205.     menuItemID: integer;
  206.     menuID: integer;
  207.     modifiers: integer;
  208. END;
  209.  
  210. finderSaysBeforeOpenInPtr = ^finderSaysBeforeOpenIn;
  211. finderSaysBeforeOpenIn = RECORD
  212.     pCount: integer;
  213.     pathname: GSString255Ptr;
  214.     rectangle: RectPtr;
  215.     filetype: integer;
  216.     auxtype: longint;
  217.     modifiers: integer;
  218.     theIconObj: iconObjHandle;
  219.     printFlag: integer;
  220. END;
  221. finderSaysOpenFailedIn = finderSaysBeforeOpenIn;
  222. finderSaysOpenFailedInPtr = finderSaysBeforeOpenInPtr;
  223.  
  224. finderSaysBeforeCopyInPtr = ^finderSaysBeforeCopyIn;
  225. finderSaysBeforeCopyIn = RECORD
  226.     pCount: integer;
  227.     sourcePathname: GSString255Ptr;
  228.     destinationPathname: GSString255Ptr;
  229. END;
  230.  
  231. finderSaysBeforeRenameInPtr = ^finderSaysBeforeRenameIn;
  232. finderSaysBeforeRenameIn = RECORD
  233.     pCount: integer;
  234.     oldPathname: GSString255Ptr;
  235.     newPathname: GSString255Ptr;
  236.     filetype: integer;
  237.     auxtype: longint;
  238. END;
  239.  
  240. finderSaysKeyHitInPtr = ^finderSaysKeyHitIn;
  241. finderSaysKeyHitIn = RECORD
  242.     pCount: integer;
  243.     message: integer; { key code }
  244.     modifiers: integer;
  245. END;
  246.  
  247. { finderSays DataOut structures }
  248.  
  249. finderSaysMItemSelectedOutPtr = ^finderSaysMItemSelectedOut;
  250. finderSaysMItemSelectedOut = RECORD
  251.     recvCount: integer;
  252.     abortItFlag: integer;
  253. END;
  254.  
  255. finderSaysBeforeCopyOutPtr = ^finderSaysBeforeCopyOut;
  256. finderSaysBeforeCopyOut = RECORD
  257.     recvCount: integer;
  258.     abortFlag: integer; { 0=continue, 1=abort, 2-$FFFF=reserved }
  259. END;
  260.  
  261. finderSaysBeforeRenameOutPtr = ^finderSaysBeforeRenameOut;
  262. finderSaysBeforeRenameOut = RECORD
  263.     recvCount: integer;
  264.     abortFlag: integer; { nonzero to abort rename }
  265. END;
  266.  
  267. { tellFinder DataIn Structures }
  268.  
  269. tellFinderLaunchThisInPtr = ^tellFinderLaunchThisIn;
  270. tellFinderLaunchThisIn = RECORD
  271.     launchOrPrint: integer;
  272.     pathname: GSString255Ptr;
  273. END;
  274.  
  275. tellFinderMItemSelectedInPtr = ^tellFinderMItemSelectedIn;
  276. tellFinderMItemSelectedIn = RECORD
  277.     menuItemID: integer;
  278.     modifiers: integer;
  279.     flags: integer; { bit 15 = hilite, 14-0 = reserved }
  280. END;
  281.  
  282. tellFinderMatchFileToIconInPtr = ^tellFinderMatchFileToIconIn;
  283. tellFinderMatchFileToIconIn = RECORD
  284.     pCount: integer;
  285.     votingBits: integer;
  286.     whichMatch: integer; { 1 or higher }
  287.     filetype: integer;
  288.     auxtype: longint;
  289.     matchFilenamePtr: Ptr;
  290.     createFileInfoPtr: Ptr;
  291.     modFileInfoPtr: Ptr;
  292.     localAccess: integer;
  293.     flags: integer; { bit 15 = extended file, 14-0 = reserved }
  294.     optionListPtr: Ptr;
  295.     combinedEOF: longint;
  296. END;
  297.  
  298. tellFinderAddBundleInPtr = ^tellFinderAddBundleIn;
  299. tellFinderAddBundleIn = RECORD
  300.     addHow: integer;
  301.     pathnamePtr: Ptr;
  302.     desktopPathnamePtr: Ptr;
  303.     rBundleID: longint;
  304. END;
  305.  
  306. tellFinderCheckDatabaseInPtr = ^tellFinderCheckDatabaseIn;
  307. tellFinderCheckDatabaseIn = RECORD
  308.     update: integer;
  309.     updatePathnamePtr: ptr;
  310.     rVersionPtr: ptr; { must be locked }
  311. END;
  312.  
  313. tellFinderSpecialPreferencesInPtr = ^tellFinderSpecialPreferencesIn;
  314. tellFinderSpecialPreferencesIN = RECORD
  315.     pCount: integer; { minimum 1 }
  316.     dragHDtoTrash: integer; { 0=disallow, 1=allow }
  317. END;
  318.  
  319. { tellFinder DataOut Structures }
  320.  
  321. tellFinderGetDebugInfoOutPtr = ^tellFinderGetDebugInfoOut;
  322. tellFinderGetDebugInfoOut = RECORD
  323.     recvCount: integer;
  324.     finderResult: integer;
  325.     pCount: integer;
  326.     directPage: integer;
  327.     deskIcon: handle;
  328.     nameChainH: handle;
  329.     filetypeBlock: ptr;
  330.     deviceBlock: ptr;
  331.     masterChainH: handle;
  332.     rFPListHandle: handle;
  333.     rFPCount: integer;
  334.     reserved: array[1..64] of longint;
  335. END;
  336.  
  337. tellFinderAreYouThereOutPtr = ^tellFinderAreYouThereOut;
  338. tellFinderAreYouThereOut = RECORD
  339.     recvCount: integer;
  340.     finderResult: integer;
  341. END;
  342.  
  343. tellFinderOpenWindowOutPtr = ^tellFinderOpenWindowOut;
  344. tellFinderOpenWindowOut = RECORD
  345.     recvCount: integer;
  346.     finderResult: integer;
  347.     window: WindowPtr;    
  348. END;
  349.  
  350. tellFinderCloseWindowOutPtr = ^tellFinderCloseWindowOut;
  351. tellFinderCloseWindowOut = RECORD
  352.     recvCount: integer;
  353.     finderResult: integer;
  354. END;
  355.  
  356. tellFinderGetSelectedIconsOutPtr = ^tellFinderGetSelectedIconsOut;
  357. tellFinderGetSelectedIconsOut = RECORD
  358.     recvCount: integer;
  359.     finderResult: integer;
  360.     iconWindowPtr: WindowPtr;
  361.     stringListHandle: Handle;
  362. END;
  363.  
  364. tellFinderLaunchThisOutPtr = ^tellFinderLaunchThisOut;
  365. tellFinderLaunchThisOut = RECORD
  366.     recvCount: integer;
  367.     finderResult: integer;
  368. END;
  369.  
  370. tellFinderShutDownOutPtr = ^tellFinderShutDownOut;
  371. tellFinderShutDownOut = RECORD
  372.     recvCount: integer;
  373.     finderResult: integer;
  374. END;
  375.  
  376. tellFinderMItemSelectedOutPtr = ^tellFinderMItemSelectedOut;
  377. tellFinderMItemSelectedOut = RECORD
  378.     recvCount: integer;
  379.     finderResult: integer;
  380. END;
  381.  
  382. tellFinderMatchFileToIconOutPtr = ^tellFinderMatchFileToIconOut;
  383. tellFinderMatchFileToIconOut = RECORD
  384.     recvCount: integer;
  385.     finderResult: integer;
  386.     oneDocOffset: longint; { NIL if no match }
  387.     rBundleHandle: handle; { NIL if no match }
  388.     smallIconHandle: handle; { never NIL }
  389.     largeIconHandle: handle; { never NIL }
  390.     rFinderPathHandle: handle; { NIL if no one owns icon }
  391. END;
  392.  
  393. tellFinderAddBundleOutPtr = ^tellFinderAddBundleOut;
  394. tellFinderAddBundleOut = RECORD
  395.     recvCount: integer;
  396.     finderResult: integer;
  397. END;
  398.  
  399. tellFinderAboutChangeOutPtr = ^tellFinderAboutChangeOut;
  400. tellFinderAboutChangeOut = RECORD
  401.     recvCount: integer;
  402.     finderResult: integer;
  403. END;
  404.  
  405. tellFinderCheckDatabaseOutPtr = ^tellFinderCheckDatabaseOut;
  406. tellFinderCheckDatabaseOut = RECORD
  407.     recvCount: integer;
  408.     finderResult: integer;
  409.     match: integer; { 0 if no match found, nonzero if match found }
  410. END;
  411.  
  412. tellFinderColorSelectionOutPtr = ^tellFinderColorSelectionOut;
  413. tellFinderColorSelectionOut = RECORD
  414.     recvCount: integer;
  415.     finderResult: integer;
  416. END;
  417.  
  418. tellFinderAddToExtrasOutPtr = ^tellFinderAddToExtrasOut;
  419. tellFinderAddToExtrasOut = RECORD
  420.     recvCount: integer;
  421.     finderResult: integer;
  422.     menuItemID: integer;
  423.     menuID: integer;
  424. END;
  425.  
  426. tellFinderIdleHowLongOutPtr = ^tellFinderIdleHowLongOut;
  427. tellFinderIdleHowLongOut = RECORD
  428.     recvCount: integer;
  429.     finderResult: integer;
  430.     tickCount: longint;
  431. END;
  432.  
  433. tellFinderGetWindowIconsOutPtr = ^tellFinderGetWindowIconsOut;
  434. tellFinderGetWindowIconsOut = RECORD
  435.     recvCount: integer;
  436.     finderResult: integer;
  437.     stringListHandle: handle;
  438. END;
  439.  
  440. tellFinderGetWindowInfoOutPtr = ^tellFinderGetWindowInfoOut;
  441. tellFinderGetWindowInfoOut = RECORD
  442.     recvCount: integer;
  443.     finderResult: integer;
  444.     windowType: integer;
  445.     windView: integer;
  446.     windFST: integer;
  447.     windTitle: ptr;
  448.     windPath: ptr;
  449.     reserved1, reserved2: longint;
  450. END;
  451.  
  452. tellFinderRemoveFromExtrasOutPtr = ^tellFinderRemoveFromExtrasOut;
  453. tellFinderRemoveFromExtrasOut = RECORD
  454.     recvCount: integer;
  455.     finderResult: integer;
  456. END;
  457.  
  458. tellFinderSpecialPreferencesOutPtr = ^tellFinderSpecialPreferencesOut;
  459. tellFinderSpecialPreferencesOut = RECORD
  460.     recvCount: integer;
  461.     finderResult: integer;
  462. END;
  463.  
  464. IMPLEMENTATION
  465.  
  466. END.
  467.